To conserve resources on computing devices, data compression techniques are often implemented. Common compression techniques include range coding and Huffman coding.
Range coding achieves compression by converting a data stream into a floating point representation of the notional probability that the data stream would occur, based on the model used by the coder. Huffman coding achieves compression by replacing common fixed-size bit sequences in a data stream with shorter bit sequences, and uncommon bit sequences with longer bit sequences, that have the property that no valid replacement bit sequence is a prefix of any other valid replacement.
Both coding techniques generate small sets of nonrepeating integer values that need to be stored for or transmitted to the decoding application. Thus, a technique to compactly store or transmit these sets is required.